package com.xiaoshuidi.cloud.module.contract.controller.admin.contract.vo.settlement;


import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.ToString;

import java.math.BigDecimal;
import java.time.LocalDate;


/**
 * 退租清算单条件查询返回列表
 */
@Schema(description = "管理后台 - 清算Response VO")
@Data
@ToString(callSuper = true)
public class ContractSettlementGetListRespVO {
    /**
     * 序号
     */
    private Integer serialNumber;
    /**
     * 结算单id
     */
    @Schema(description = "结算单id")
    private Long id;
    /**
     * 父合同结算单id
     */
    @Schema(description = "父合同结算单id")
    private Long parentSettlementId;

    /**
     * 合同id
     */
    @Schema(description = "合同id")
    private Long contractId;
    /**
     * 账单表id
     */
    @Schema(description = "账单表id")
    private Long orderId;
    /**
     * 结算单编号
     */
    @Schema(description = "结算单编号")
    private String settlementNo;
    /**
     * 结算单类型 default普通结算单 | owner_settlement业主结算单 | company_settlement 企业合同结算单
     */
    @Schema(description = "结算单类型 default普通结算单 | owner_settlement业主结算单 | company_settlement 企业合同结算单")
    private String settlementType;
    /**
     * 公寓id
     */
    @Schema(description = "公寓id")
    private Long apartmentId;
    /**
     * 公寓名称
     */
    @Schema(description = "公寓名称")
    private String apartmentName;
    /**
     * 房间id
     */
    @Schema(description = "房间id")
    private Long roomId;
    /**
     * 房间名称
     */
    @Schema(description = "房间名称")
    private String roomName;
    /**
     * 租客姓名
     */
    @Schema(description = "租客姓名")
    private String customerName;

    /**
     * 租客手机号
     */
    @Schema(description = "租客手机号")
    private String customerPhone;

    /**
     * 退租单状态 NO_AUDIT_REQUITED("notReview", "无需审核"),IN_REVIEW("inReview", "审核中"),HAVE_TAKEN_EFFECT("effective", "已生效"),REJECT("reject", "已驳回"),TREAT_CLEAR("treatClear", "待清算"),CLEAR("clear", "已清算");
     */
    @Schema(description = "退租单状态 NO_AUDIT_REQUITED(\"notReview\", \"无需审核\"),IN_REVIEW(\"inReview\", \"审核中\"),HAVE_TAKEN_EFFECT(\"effective\", \"已生效\"),REJECT(\"reject\", \"已驳回\"),TREAT_CLEAR(\"treatClear\", \"待清算\"),CLEAR(\"clear\", \"已清算\")")
    private String clearedStatus;
    /**
     * 退租类型
     */
    @Schema(description = "退租类型")
    private String evictionType;

    /**
     * 退租时间
     */
    @Schema(description = "退租时间")
    private LocalDate evictionTime;

    /**
     * 退租原因
     */
    @Schema(description = "退租原因")
    private String evictionReason;

    /**
     * 资金流向 out 流出| in 流入
     */
    @Schema(description = "资金流向 out 流出| in 流入")
    private String flowType;

    /**
     * 应收款费用
     */
    @Schema(description = "应收款费用")
    private BigDecimal receivablesAmount;

    /**
     * 应退款费用
     */
    @Schema(description = "应退款费用")
    private BigDecimal refundableAmount;

    /**
     * 金额
     */
    @Schema(description = "金额")
    private BigDecimal amount;

    /**
     * 持卡人
     */
    @Schema(description = "持卡人")
    private String payeeName;

    /**
     * 支行省
     */
    @Schema(description = "支行省")
    private String payeeBankProvince;
    /**
     * 支行市
     */
    @Schema(description = "支行市")
    private String payeeBankCity;
    /**
     * 支行code
     */
    @Schema(description = "支行code")
    private String payeeBankCode;
    /**
     * 支行名称
     */
    @Schema(description = "所属银行")
    private String payeeBankName;

    /**
     * 银行卡号
     */
    @Schema(description = "银行卡号")
    private String payeeBankAccount;

    /**
     * 所属支行
     */
    @Schema(description = "所属支行")
    private String payeeBankBranch;

    /**
     * 附件信息
     */
    @Schema(description = "附件信息")
    private String attachment;

    /**
     * 备注
     */
    @Schema(description = "备注")
    private String remark;

    /**
     * 收款开始时间
     */
    @Schema(description = "收款开始时间")
    private LocalDate startReceivables;

    /**
     * 收款结束时间
     */
    @Schema(description = "收款结束时间")
    private LocalDate endReceivables;
    /**
     * 开始日期
     */
    @Schema(description = "开始日期")
    private LocalDate startTime;
    /**
     * 结束日期
     */
    @Schema(description = "结束日期")
    private LocalDate endTime;

    private String fullRoomName;

    /**
     * 退租房间资产
     * */
    private String roomAsset;
    /**
     * 客户类型
     */
    private String customerType;
    /**
     * 审批流程id
     * */
    private String processInstance;
}
